package tools

import "regexp"

func CheckPhoneNumber(phoneNumber string) int {
	// 大陆手机正则表达式
	chinaRegex := regexp.MustCompile(`^1[3|4|5|7|8]\d{9}$`)
	// 香港手机正则表达式
	hongKongRegex := regexp.MustCompile(`^852([5|6|9])\d{7}$`)
	// 澳门手机正则表达式
	macauRegex := regexp.MustCompile(`^853[6|8]\d{7}$`)
	if chinaRegex.MatchString(phoneNumber) {
		return 0 //大陆
	} else if hongKongRegex.MatchString(phoneNumber) {
		return 1 //香港
	} else if macauRegex.MatchString(phoneNumber) {
		return 2 //澳门
	} else {
		return 3 //错误
	}
}

// 是否加了区号
func IsAddRegion(phoneNumber string, Type int) string {
	// 是否加了区号
	isAddH := regexp.MustCompile(`^852([5|6|9])\d{7}$`)
	isAddA := regexp.MustCompile(`^853([8|6])\d{7}$`)
	if Type == 1 {
		if !isAddH.MatchString(phoneNumber) {
			return "852" + phoneNumber
		} else {
			return phoneNumber
		}
	} else if Type == 2 {
		if !isAddA.MatchString(phoneNumber) {
			return "853" + phoneNumber
		} else {
			return phoneNumber
		}
	}
	return phoneNumber
}

// 修改手机号码
func CorrectPhone(phone string) string {
	// 大陆手机正则表达式
	chinaRegex := regexp.MustCompile(`^1[3|4|5|7|8]\d{9}$`)
	// 香港手机正则表达式
	hongKongRegex := regexp.MustCompile(`^([5|6|9])\d{7}$`)
	// 澳门手机正则表达式
	macauRegex := regexp.MustCompile(`^[6|8]\d{7}$`)
	isAddH := regexp.MustCompile(`^852([5|6|9])\d{7}$`)
	isAddA := regexp.MustCompile(`^853([6|8])\d{7}$`)
	if chinaRegex.MatchString(phone) {
		return phone
	} else if hongKongRegex.MatchString(phone) {
		if !isAddH.MatchString(phone) {
			return "852" + phone
		} else {
			return phone
		}
	} else if macauRegex.MatchString(phone) {
		if !isAddA.MatchString(phone) {
			return "853" + phone
		} else {
			return phone
		}
	} else {
		return phone
	}
}
